package com.pine.manager.core;

import com.pine.common.util.user.UserInfo;
import com.pine.manager.pineframework.bo.SysUserBo;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/**
 * 用户信息
 *
 * @author pine manage
 * @since 2024-08-14
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class SysUserInfo extends SysUserBo implements UserInfo {
    /**
     * 用户token
     */
    private String token;

    /**
     * 角色id
     */
    private Long roleId;

    /**
     * 部门id(含子部门)
     */
    private List<Long> deptIds;

    /**
     * 数据权限
     */
    private Integer dataScope;

    @Override
    public Long id() {
        return super.getId();
    }

    /**
     * 获取用户名
     *
     * @return 用户名
     */
    @Override
    public String username() {
        return super.getUsername();
    }

    /**
     * 获取登录账号
     *
     * @return 登录账号
     */
    @Override
    public String loginAccount() {
        return super.getLoginAccount();
    }

    /**
     * 获取昵称
     *
     * @return 昵称
     */
    @Override
    public String nickName() {
        return super.getUsername();
    }

    /**
     * 获取手机号
     *
     * @return 手机号
     */
    @Override
    public String phone() {
        return super.getPhone();
    }

    /**
     * 获取邮箱
     *
     * @return 邮箱
     */
    @Override
    public String email() {
        return super.getEmail();
    }

    /**
     * 获取用户token
     *
     * @return 用户token
     */
    @Override
    public String token() {
        return this.token;
    }

    /**
     * 获取角色id
     *
     * @return 角色id
     */
    @Override
    public Long roleId() {
        return this.roleId;
    }

    @Override
    public Long deptId() {
        return super.getDeptId();
    }

    /**
     * 获取部门id(含子部门)
     *
     * @return 部门id(含子部门)
     */
    @Override
    public List<Long> deptIds() {
        return this.deptIds;
    }

    @Override
    public Integer dataScope() {
        return this.dataScope;
    }
}
